// app.js
const express = require('express');
const bodyParser = require('body-parser');
const jwt = require('jsonwebtoken');
const cors = require('cors');
const app = express();
const db = require('./db');
app.use(cors());
app.use(bodyParser.json());

const routes = require('./routes/index');
app.use(routes);

// 错误处理中间件
app.use((err, req, res, next) => {
  console.error(err.stack); // 打印错误堆栈到控制台
  res.status(500).json({ message: err.message || 'Internal Server Error' }); // 向客户端发送错误响应
});
// 设置项目编码格式为 UTF-8
app.use((req, res, next) => {
  res.setHeader('Content-Type', 'application/json; charset=utf-8'); // 确保响应头的编码格式为 UTF-8
  next();
});


// 验证 Token 中间件
const authenticateToken = (req, res, next) => {
  const token = req.headers['authorization'];
  if (!token) return res.status(403).json({ message: '未提供 Token' });

  jwt.verify(token, secretKey, (err, user) => {
    if (err) return res.status(401).json({ message: '无效的 Token' });
    req.user = user; // 将解码后的用户信息存入请求对象
    next();
  });
};

const port = 3000;
// 启动服务器
app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});
